package pe.edu.upc.xcode.food.dao.impl;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import pe.edu.upc.xcode.food.dao.UsuarioDAO;
import pe.edu.upc.xcode.food.domain.Usuario;
@Repository
@Transactional
public class UsuarioDAOImpl implements UsuarioDAO {

    @PersistenceContext
    private EntityManager em;
    
	public UsuarioDAOImpl() {
		// TODO Auto-generated constructor stub
	}

	
	public Integer save(Usuario object) {
		// TODO Auto-generated method stub
		em.persist(object);
		return 1;
	}

	public Integer update(Usuario object) {
		// TODO Auto-generated method stub
		em.merge(object);
		return 1;
	}

	public Integer detele(Usuario object) {
		// TODO Auto-generated method stub
		em.remove(object);
		return 1;
	}

	public Usuario find(Usuario object) {
		
		Query query=em.createQuery("select o from Usuario o where o.correo=:correo and pwd=:password");
		query.setParameter("correo", object.getCorreo());
		query.setParameter("password", object.getPwd());
		
	Usuario usuarioobj=(Usuario) query.getSingleResult();
	
	usuarioobj.getCalificacions();
		
		return usuarioobj;
	}

	@SuppressWarnings("unchecked")
	public List<Usuario> findAll() {
		// TODO Auto-generated method stub
		Query query=em.createQuery("select u from Usuario u where u.tipoUsuario=1 and u.estado='A'");
		
		return query.getResultList();
	}

}
